<?php

/**
 * utils actions.
 *
 * @package    dnevnik
 * @subpackage utils
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
 */
class utilsActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object - width, height, x, y, font, background, color and text - all mandatory
  */
  public function executeImageText(sfWebRequest $request)
  {
      $text = str_replace('.png', '', $request->getParameter('text'));

      /* Cuva image samo prvi put, kasnije cita vec napravljeni */
      /*$save_text = str_replace('.', '', $request->getParameter('text'));
      $save_text = str_replace('png', '', $save_text);
      $save_text = Functions::kvacice($save_text, 1);
      $save_text .= '-'.$request->getParameter('width').'.png';
      if(file_exists(sfConfig::get('sf_web_dir').'/images/generated/'.$save_text))
      {
          $img = new sfImage('images/generated/'.$save_text, 'image/png', 'GD');
          $response = $this->getResponse();
          $response->setContentType($img->getMIMEType());
          $response->setContent($img);

          return sfView::NONE;
      }*/
      $mandatory = array('width', 'height', 'x', 'y', 'font', 'background', 'color', 'text');
      try
      {
         if(count(array_diff($mandatory, $request->getParameterHolder()->getNames())))
           throw new Exception('Niste uneli sve potrebne parametre');
      }
      catch (Exception $e)
      {var_dump($e->getMessage());die();}

      $img = new sfImage('images/generated/gen'.$request->getParameter('background').'.png', 'image/png', 'GD');

      $img->resize($request->getParameter('height'), $request->getParameter('width'));
      $img->Text($text, $request->getParameter('y'), $request->getParameter('x'), $request->getParameter('font'), 'Arial', '#'.$request->getParameter('color'));
      $img->rotate(90);
      //$img->saveAs('images/generated/'.$save_text);

      $response = $this->getResponse();
      $response->setContentType($img->getMIMEType());
      $response->setContent($img);

      return sfView::NONE;
  }

  public function executePredmetImages(sfWebRequest $request)
  {
      $predmets = DbFinder::from('Predmet')->find();

      foreach($predmets as $predmet)
      {
         $save_text = $predmet->getId().'.jpg';
         if(!file_exists(sfConfig::get('sf_web_dir').'/images/predmeti/'.$save_text))
         {
             $img = new sfImage('images/generated/gengray.jpg', 'image/jpg', 'GD');

             $img->resize(100, 18);
             $img->Text(mb_strtolower($predmet->getPredmetKratki(), 'UTF-8'), 6, 4, 12, 'Arial');
             $img->rotate(90);
             $img->saveAs('images/predmeti/'.$save_text);
         }
      }

      return sfView::NONE;
  }

  private function test($width, $height, $x, $y, $font, $text)
  {
      $text = str_replace('.png', '', $text);

      $save_text = str_replace('.', '', $text);
      $save_text = str_replace('png', '', $save_text);
      $save_text = Functions::kvacice($save_text, 1);
      $save_text .= '-'.$width.'.png';
      if(file_exists(sfConfig::get('sf_web_dir').'/images/generated/'.$save_text))
      {
          $img = new sfImage('images/generated/'.$save_text, 'image/png', 'GD');
      }

      $img = new sfImage('images/generated/gen.png', 'image/png', 'GD');

      $img->resize($width, $height);
      $img->Text($text, $y, $x, $font);
      $img->rotate(90);
      $img->saveAs('images/generated/'.$save_text);
  }

  public function executeImport(sfWebRequest $request)
  {
      // mode - 1: import, mode -2: check baze, mode - 3: check file, mode - 4: check imena
      $mode = 1;
      set_time_limit(3600);
      ini_set('memory_limit', '1000M');
      $con = Propel::getConnection();
      try
      {
        $con->beginTransaction();

      $tip = $request->getParameter('tip');
      $skola_id = $request->getParameter('skola_id');
      if($request->isMethod('post'))
      {
        $uploads = sfConfig::get('sf_web_dir').'/uploads/';

        $uploadfile = $uploads.basename($_FILES['userfile']['name']);

        if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
        {
        }
        else die ('greska upl');

        $handle = @fopen($uploadfile, "r"); // Open file form read.

        if ($handle)
        {
          if($tip == 'profesor')
          {
            //$nazivi = array('nul_1'=>0,'nul_2'=>1,'jmbg'=>2,'prezime_ime'=>3,'ime_rod'=>4,'devojacko'=>5,'nul_3'=>6,'pol'=>7,'dat_rod'=>8,'s_drzava_rod'=>9,'mesto_rod'=>10,'nul_4'=>11,'zivi_sa'=>12,'mesto_stanovanja'=>13,'adresa_stanovanja'=>14,'telefon_posao'=>15,'telefon'=>16,'e_mail'=>17,'drzavljanstvo'=>18,'nacionalnost'=>19,'nul_5'=>20,'broj_radne_knj'=>21,'zanimanje'=>22,'obrazovanje'=>23,'stecena_ss'=>24,'drzavni_ispit'=>25,'pedagoski_sav'=>26,'strucna_sprema'=>27,'naziv_diplome'=>28,'nastavnik_saradnik'=>29,'penzioner'=>30,'nul_11'=>31,'dat_zaposlenja'=>32,'nul_6'=>33,'nul_7'=>34,'null_8'=>35,'radno_vreme'=>36,'radna_jedinica'=>37,'sifra_koef'=>38,'naziv_koeficijenta'=>39,'koeficijent'=>40,'koeficijent_veci'=>41,'nul_9'=>42,'null_10'=>43,'sindikat'=>44,'banka'=>45,'tekuci'=>46);
            $nazivi = array('nul_1'=>0,'nul_2'=>0,'jmbg'=>1,'prezime_ime'=>2,'ime_rod'=>3,'devojacko'=>4,'nul_3'=>5,'pol'=>6,'dat_rod'=>7,'s_drzava_rod'=>8,'mesto_rod'=>9,'nul_4'=>10,'zivi_sa'=>11,'mesto_stanovanja'=>12,'adresa_stanovanja'=>13,'telefon_posao'=>14,'telefon'=>15,'e_mail'=>16,'drzavljanstvo'=>17,'nacionalnost'=>18,'nul_5'=>19,'broj_radne_knj'=>20,'zanimanje'=>21,'obrazovanje'=>22,'stecena_ss'=>23,'drzavni_ispit'=>24,'pedagoski_sav'=>25,'strucna_sprema'=>26,'naziv_diplome'=>27,'nastavnik_saradnik'=>28,'penzioner'=>29,'nul_11'=>30,'dat_zaposlenja'=>31,'nul_6'=>32,'nul_7'=>33,'null_8'=>34,'radno_vreme'=>35,'radna_jedinica'=>36,'sifra_koef'=>37,'naziv_koeficijenta'=>38,'koeficijent'=>39,'koeficijent_veci'=>40,'nul_9'=>41,'null_10'=>42,'sindikat'=>43,'banka'=>44,'tekuci'=>45);
            while (!feof($handle)) // Loop til end of file.
            {
              $buffer = fgets($handle, 4096); // Read a line.
              if(strlen($buffer) < 2)
                continue;
              $buffer = iconv('windows-1250', 'UTF-8', $buffer);
              $stari = strstr($buffer, 'useripass');
              if($stari)
              {
                 $buffer_arr = explode('useripass', $buffer);
                 $user = explode('|',$buffer_arr[0]);
                 $data = explode('|',$buffer_arr[1]);
              }
              else $data = explode('|', $buffer);
              $p_i = explode(' ', $data[$nazivi['prezime_ime']]);
              if($data[$nazivi['pol']] == 'Muško')
                $pol = ProfilPeer::$pol['m'];
              else  $pol = ProfilPeer::$pol['z'];

              $profil = new Profil();
              if($stari)
              {
                 $profil->setUsername($user[0]);
                 $profil->setPassword($user[1]);
                 $profil->setPlainPassword($user[2]);
              }

              $profil->setPrezime(Functions::mb_ucwords($p_i[0]));
              $profil->setIme(Functions::mb_ucwords($p_i[1]));
              $profil->setPol($pol);
              $profil->setAdresa($data[$nazivi['adresa_stanovanja']]);
              $profil->setTelefon($data[$nazivi['telefon']]);
              //$profil->setMobilni($data[$nazivi['mobilni']]);
              $profil->setTip(ProfilPeer::$tip['profesor']);
              $profil->save();

              $profesor = new Profesor();
              $profesor->setId($profil->getId());
              $profesor->setSkolaId($skola_id);
              $profesor->setTip(ProfesorPeer::$tip['profesor']);
              $profesor->save();
            }
          }

          if($tip == 'razred')
          {
            $nazivi = array('razred'=>0,'slovo'=>1,'podrucna'=>2,'nesto'=>3,'jezik'=>4,'prezime_ime'=>5,'smena'=>6);
            //$nazivi = array('razred'=>0,'slovo'=>1,'podrucna'=>2,'jezik'=>3,'prezime_ime'=>4,'smena'=>5);
            $smer_dbs = DbFinder::from('Smer')->find();
            $smers = array();
            foreach($smer_dbs as $smer_db)
              $smers[$smer_db->getNaziv()] = $smer_db->getId();

            while (!feof($handle)) // Loop til end of file.
            {
              $buffer = fgets($handle, 4096); // Read a line.
              if(strlen($buffer) < 2)
                continue;
              $buffer = iconv('windows-1250', 'UTF-8', $buffer);
              $data = explode('|', $buffer);
              $p_i = explode(' ', $data[$nazivi['prezime_ime']]);
              $profesor = DbFinder::from('Profil')->join('Profesor')->where('Profil.Prezime', Functions::mb_ucwords($p_i[0]))->where('Profil.Ime', Functions::mb_ucwords($p_i[1]))->where('Profesor.SkolaId', $skola_id)->findOne();
              if($profesor)
                $profesor_id = $profesor->getId();
              else $profesor_id = null;

              /* OSNOVNA SKOLA */
              if($data[$nazivi['razred']] == 1)
                $smer = 'osn 1';
              else if($data[$nazivi['razred']] == 2)
                $smer = 'osn 2';
              else if($data[$nazivi['razred']] == 3)
                $smer = 'osn 3';
              else if($data[$nazivi['razred']] == 4)
                $smer = 'osn 4';
              else if($data[$nazivi['razred']] == 5)
                $smer = 'osn 5';
              else if($data[$nazivi['razred']] == 6)
                $smer = 'osn 6';
              else if($data[$nazivi['razred']] == 7)
                $smer = 'osn 7';
              else if($data[$nazivi['razred']] == 8)
                $smer = 'osn 8';

              /* GIMNAZIJA */
              /*if(
                  $data[$nazivi['razred']] == 1 and $data[$nazivi['slovo']] == 7 or
                  $data[$nazivi['razred']] == 1 and $data[$nazivi['slovo']] == 2 or
                  $data[$nazivi['razred']] == 1 and $data[$nazivi['slovo']] == 3 or
                  $data[$nazivi['razred']] == 2 and $data[$nazivi['slovo']] == 2 or
                  $data[$nazivi['razred']] == 2 and $data[$nazivi['slovo']] == 3 or
                  $data[$nazivi['razred']] == 3 and $data[$nazivi['slovo']] == 1 or
                  $data[$nazivi['razred']] == 3 and $data[$nazivi['slovo']] == 2 or
                  $data[$nazivi['razred']] == 3 and $data[$nazivi['slovo']] == 3 or
                  $data[$nazivi['razred']] == 4 and $data[$nazivi['slovo']] == 1 or
                  $data[$nazivi['razred']] == 4 and $data[$nazivi['slovo']] == 2 or
                  $data[$nazivi['razred']] == 4 and $data[$nazivi['slovo']] == 3
                )
                $smer = 'Društveni '.$data[$nazivi['razred']];
              else if(
                  $data[$nazivi['razred']] == 1 and $data[$nazivi['slovo']] == 1 or
                  $data[$nazivi['razred']] == 2 and $data[$nazivi['slovo']] == 1
                )
                $smer = 'Filološki '.$data[$nazivi['razred']];
              else if(
                  $data[$nazivi['razred']] == 1 and $data[$nazivi['slovo']] == 6
                )
                $smer = 'Informatički '.$data[$nazivi['razred']];
              else if(
                  $data[$nazivi['razred']] == 1 and $data[$nazivi['slovo']] == 4 or
                  $data[$nazivi['razred']] == 2 and $data[$nazivi['slovo']] == 4 or
                  $data[$nazivi['razred']] == 2 and $data[$nazivi['slovo']] == 5 or
                  $data[$nazivi['razred']] == 2 and $data[$nazivi['slovo']] == 6 or
                  $data[$nazivi['razred']] == 3 and $data[$nazivi['slovo']] == 4 or
                  $data[$nazivi['razred']] == 3 and $data[$nazivi['slovo']] == 5 or
                  $data[$nazivi['razred']] == 3 and $data[$nazivi['slovo']] == 6 or
                  $data[$nazivi['razred']] == 4 and $data[$nazivi['slovo']] == 4 or
                  $data[$nazivi['razred']] == 4 and $data[$nazivi['slovo']] == 5 or
                  $data[$nazivi['razred']] == 4 and $data[$nazivi['slovo']] == 6
                )
                $smer = 'Prirodni '.$data[$nazivi['razred']];*/

              /* Kreiranje razreda */
              $razred = new Razred();
              $razred->setSkolaId($skola_id);
              $razred->setProfesorId($profesor_id);
              $razred->setRazred($data[$nazivi['razred']]);
              $razred->setSlovo($data[$nazivi['slovo']]);
              $razred->setSmerId($smers[$smer]);
              $razred->save();

              if(in_array($razred->getSmerId(), array($smers['osn 1'], $smers['osn 2'], $smers['osn 3'], $smers['osn 4'])))
              {
                  $predmetdb_ids = DbFinder::from('PredmetSmer')->leftJoin('Predmet')->where('PredmetSmer.SmerId', $razred->getSmerId())->where('Predmet.Tip', PredmetPeer::$tip['redovni'])->find();
                  $predmet_ids = array();
                  foreach($predmetdb_ids as $predmetdb_id)
                    $predmet_ids[] = $predmetdb_id->getPredmetId();
                  DbFinder::from('PredmetRazred')->where('RazredId', $razred->getId())->where('PredmetId', 'in', $predmet_ids)->set(array('ProfesorId' => $profesor_id));
              }
            }
          }

          if($tip == 'raspodela')
          {
            $nazivi = array('prezime_ime'=>0,'predmet'=>2,'pismeni'=>3,'odeljenje_grupa'=>4,'razred'=>5,'slovo'=>6,'ime_grupe'=>7,'nul_1'=>8,'nul_2'=>9,'nul_3'=>10,'nul_4'=>11,'nul_5'=>12,'nul_6'=>13,'jezik_nastave'=>15,'skola'=>16);
            //$nazivi = array('prezime_ime'=>0,'predmet'=>1,'pismeni'=>2,'odeljenje_grupa'=>3,'razred'=>4,'slovo'=>5,'ime_grupe'=>6,'nul_1'=>7,'nul_2'=>8,'nul_3'=>9,'nul_4'=>10,'nul_5'=>11,'nul_6'=>12,'jezik_nastave'=>13,'skola'=>14);

            $profesor_dbs = DbFinder::from('Profil')->join('Profesor')->findBy('Profesor.SkolaId', $skola_id);
            $profesors = array();
            foreach($profesor_dbs as $profesor_db)
              $profesors[$profesor_db->getPrezime().' '.$profesor_db->getIme()] = $profesor_db->getId();

            $razred_dbs = DbFinder::from('Razred')->findBy('SkolaId', $skola_id);
            $razreds = array();
            foreach($razred_dbs as $razred_db)
              $razreds[$razred_db->getRazred().' '.$razred_db->getSlovo()] = $razred_db->getId();

            while (!feof($handle)) // Loop til end of file.
            {
              $buffer = fgets($handle, 4096); // Read a line.
              if(strlen($buffer) < 2)
                continue;
              $buffer = iconv('windows-1250', 'UTF-8', $buffer);
              $data = explode('|', $buffer);

              $predmet = DbFinder::from('Predmet')->where('PredmetNaziv', 'like', '%'.$data[$nazivi['predmet']].'%')->findOne();
              if($predmet)
                DbFinder::from('PredmetRazred')->where('RazredId', $razreds[$data[$nazivi['razred']].' '.(int)$data[$nazivi['slovo']]])->where('PredmetId', $predmet->getId())->set(array('ProfesorId' => $profesors[Functions::mb_ucwords($data[$nazivi['prezime_ime']])]));
            }
          }

          if($tip == 'ucenik')
          {
            //$nazivi = array('sskola'=>0, 'razred'=>1, 'odeljenje'=>2,'jmbg'=>3,'sucenik'=>4,'prezime'=>5,'ime'=>6,'aktivan_opis'=>7,'pol_slova'=>8,'dat_rod'=>9,'s_drzava_rod'=>10,'mesto_rod_naziv'=>11,'nul_1'=>12,'otac'=>13,'majka'=>14,'staratelj'=>15,'zivi_sa'=>16,'drzavljanstvo'=>17,'nacionalnost'=>18,'stanovanje_naziv'=>19,'opstina_stanovanja'=>20,'mesto_stanovanja'=>21,'adresa_stanovanja'=>22,'telefon'=>23,'null_3'=>24,'u_sobi'=>25,'mesto_za_ucenje'=>26,'stanje_porodice'=>27,'putuje'=>28,'putovanje_kilometara'=>29,'null_5'=>30,'spec_nastava'=>31,'null_6'=>32,'null_7'=>33,'null_8'=>34,'smer'=>35,'podrucje_rada'=>36,'interni_ucenik_muzicke'=>37,'samo_opste_muzicke'=>38,'izbeglica'=>39,'s_izbegao_iz'=>40,'null_10'=>41,'status_ucenika'=>42,'veronauka'=>43,'pohadjao_predskolsku'=>44,'predskolska_godina'=>45,'rbr_dnevnik'=>46);
            //$nazivi = array('sskola'=>0, 'razred'=>1, 'odeljenje'=>2,'jmbg'=>3,'sucenik'=>4,'prezime'=>5,'ime'=>6, 'pol_slova'=>7,'dat_rod'=>8,'s_drzava_rod'=>9,'mesto_rod_naziv'=>10,'nul_1'=>11,'otac'=>12,'majka'=>13,'staratelj'=>14,'zivi_sa'=>15,'drzavljanstvo'=>16,'nacionalnost'=>17,'stanovanje_naziv'=>18,'opstina_stanovanja'=>19,'mesto_stanovanja'=>20,'adresa_stanovanja'=>21,'telefon'=>22,'null_3'=>23,'u_sobi'=>24,'mesto_za_ucenje'=>25,'stanje_porodice'=>26,'putuje'=>27,'putovanje_kilometara'=>28,'null_5'=>29,'spec_nastava'=>30,'null_6'=>31,'null_7'=>32,'null_8'=>33,'smer'=>34,'podrucje_rada'=>35,'interni_ucenik_muzicke'=>36,'samo_opste_muzicke'=>37,'izbeglica'=>38,'s_izbegao_iz'=>39,'null_10'=>40,'status_ucenika'=>41,'veronauka'=>42,'pohadjao_predskolsku'=>43,'predskolska_godina'=>44,'rbr_dnevnik'=>45);
            //$nazivi = array('razred'=>0, 'odeljenje'=>1,'jmbg'=>2,'sucenik'=>3,'prezime'=>4,'ime'=>5,'pol_slova'=>6,'dat_rod'=>7,'s_drzava_rod'=>9,'mesto_rod_naziv'=>8,'otac'=>10,'majka'=>11,'staratelj'=>12, 'adresa_stanovanja'=>13,'telefon'=>14);
            $nazivi = array('razred'=>0, 'odeljenje'=>1,'jmbg'=>3,'sucenik'=>2,'prezime'=>5,'ime'=>4,'pol_slova'=>6,'dat_rod'=>7,'s_drzava_rod'=>10,'mesto_rod_naziv'=>8,'otac'=>11,'majka'=>12,'mesto_stanovanja'=>13,'adresa_stanovanja'=>14,'telefon'=>15);

            //SIFRARNIK
            $s_fajl = 'drzave';
            $path = sfConfig::get('sf_web_dir')."/sifrarnici/$s_fajl.txt";
            $handle_2 = fopen($path, 'r');
            $Data = fread($handle_2, filesize($path));
            fclose($handle_2);
            function grab_sifrarnik($Data, $sif)
            {
              $ar = explode("\n", $Data);
              foreach($ar as $a)
              {
                $pog = explode('|',$a);
                if($pog[0] == $sif)
                  return $pog[1];
              }
            }

            $razred_dbs = DbFinder::from('Razred')->findBy('SkolaId', $skola_id);
            $razreds = array();
            foreach($razred_dbs as $razred_db)
              $razreds[$razred_db->getRazred().' '.$razred_db->getSlovo()] = $razred_db->getId();
            if($mode > 1)
            {
              $user_ar = array();
              $uc_ar = array();
              $rod_ar = array();
              $names = array();
            }
            while (!feof($handle)) // Loop til end of file.
            {
              $buffer = fgets($handle, 4096); // Read a line.
              if(strlen($buffer) < 2)
                continue;
              $buffer = iconv('windows-1250', 'UTF-8', $buffer);
              $stari = strstr($buffer, 'useripass');
              if($stari)
              {
                 $buffer_arr = explode('useripass', $buffer);
                 $user = explode('|',$buffer_arr[0]);
                 if($mode > 1)
                 {
                    $user_ar[] = $user[0];
                    $rod_ar[] = $user[0];
                    $user_ar[] = $user[3];
                    $uc_ar[] = $user[3];
                    continue;
                 }

                 $data = explode('|',$buffer_arr[1]);
              }
              else $data = explode('|', $buffer);

              $p_i_otac = explode(' ', preg_replace('(\(.*\) )', '', $data[$nazivi['otac']]));
              $p_i_majka = explode(' ', preg_replace('(\(.*\) )', '', $data[$nazivi['majka']]));
              $p_i_staratelj = explode(' ', preg_replace('(\(.*\) )', '', $data[$nazivi['staratelj']]));
              if($mode == 4)
              {
                 $names[] = array('ucenik' => $data[$nazivi['prezime']].' '.$data[$nazivi['ime']], 'otac' => $p_i_otac, 'majka' => $p_i_majka, 'staratelj' => $p_i_staratelj);
                 continue;
              }
              $razred_id = $razreds[$data[$nazivi['razred']].' '.(int)$data[$nazivi['odeljenje']]];
              if($data[$nazivi['pol_slova']] == 'Muško')
                $pol = ProfilPeer::$pol['m'];
              else  $pol = ProfilPeer::$pol['z'];
              $mobitel = '';
              if($data[$nazivi['telefon']] != '')
              if($data[$nazivi['telefon']][0] == '0' and $data[$nazivi['telefon']][1] == '6')
              {
                $mobitel = str_replace('/','',$data[$nazivi['telefon']]);
                $mobitel = str_replace('-','',$mobitel);
              }
              $dat_rod_ar = explode('.', $data[$nazivi['dat_rod']]);
              $dat_rod = $dat_rod_ar[2].'-'.$dat_rod_ar[1].'-'.$dat_rod_ar[0];
              if(strlen($dat_rod) < 8)
                $dat_rod = null;
              $drzava = grab_sifrarnik($Data, $data[$nazivi['s_drzava_rod']]);

              // roditelj vec importovan(ranije povezano) ili pronadjen isti roditelj, sada se povezuje
              if($stari)
                $rod_dupli_stari = DbFinder::from('Roditelj')->leftJoin('Profil')->findBy('Profil.Username', $user[0]);
              else $rod_dupli_stari = 0;
              if(isset($p_i_otac[1]) and isset($p_i_majka[1]))
              {
                 if(strlen($p_i_otac[1]) > 2 and strlen($p_i_majka[1]) > 2)
                 {
                    $rod_dupli_eis = DbFinder::from('Roditelj')->leftJoin('Profil')->where('Roditelj.SkolaId', $skola_id);
                    if(isset($p_i_otac[1])) $rod_dupli_eis = $rod_dupli_eis->where('Profil.Prezime', $p_i_otac[0])->where('Profil.Ime', $p_i_otac[1]);
                    if(isset($p_i_majka[1])) $rod_dupli_eis = $rod_dupli_eis->where('Roditelj.ImeMajka', $p_i_majka[1])->where('Roditelj.PrezimeMajka', $p_i_majka[0]);
                    $rod_dupli_eis = $rod_dupli_eis->find();
                 }
              }
              else $rod_dupli_eis = 0;
              if($rod_dupli_stari)
                $roditelj = $rod_dupli_stari[0];
              else if($rod_dupli_eis)
                $roditelj = $rod_dupli_eis[0];
              else
              {
              $profil_rod = new Profil();
              if($stari)
              {
                 $profil_rod->setUsername($user[0]);
                 $profil_rod->setPassword($user[1]);
                 $profil_rod->setPlainPassword($user[2]);
              }

              if(isset($p_i_otac[1]))
              {
                 $profil_rod->setPrezime(Functions::mb_ucwords($p_i_otac[0]));
                 $profil_rod->setIme(Functions::mb_ucwords($p_i_otac[1]));
              }
              $profil_rod->setAdresa($data[$nazivi['adresa_stanovanja']]);
              $profil_rod->setTelefon($data[$nazivi['telefon']]);
              $profil_rod->setMobilni($mobitel);
              $profil_rod->setTip(ProfilPeer::$tip['roditelj']);
              $profil_rod->save();

              $roditelj = new Roditelj();
              $roditelj->setId($profil_rod->getId());
              $roditelj->setSkolaId($skola_id);
              $roditelj->setTip(RoditeljPeer::$tip['redovan']);
              if(isset($p_i_majka[1]))
              {
                 $roditelj->setImeMajka(Functions::mb_ucwords($p_i_majka[1]));
                 $roditelj->setPrezimeMajka(Functions::mb_ucwords($p_i_majka[0]));
              }
              if(isset($p_i_staratelj[1]))
              {
                 $roditelj->setImeStaratelj(Functions::mb_ucwords($p_i_staratelj[1]));
                 $roditelj->setPrezimeStaratelj(Functions::mb_ucwords($p_i_staratelj[0]));
              }

              $roditelj->setOcene(1);
              $roditelj->setIzostanci(1);
              $roditelj->setDomaci(1);
              $roditelj->setObavestenja(1);
              $roditelj->save();
              }

              $profil_uc = new Profil();
              if($stari)
              {
                 $profil_uc->setUsername($user[3]);
                 $profil_uc->setPassword($user[4]);
                 $profil_uc->setPlainPassword($user[5]);
              }

              $profil_uc->setPrezime(Functions::mb_ucwords($data[$nazivi['prezime']]));
              $profil_uc->setIme(Functions::mb_ucwords($data[$nazivi['ime']]));
              $profil_uc->setAdresa($data[$nazivi['adresa_stanovanja']]);
              $profil_uc->setTelefon($data[$nazivi['telefon']]);
              $profil_uc->setPol($pol);
              //$profil_uc->setMobilni($mobitel);
              $profil_uc->setTip(ProfilPeer::$tip['ucenik']);
              $profil_uc->save();

              $ucenik = new Ucenik();
              $ucenik->setId($profil_uc->getId());
              $ucenik->setRoditeljId($roditelj->getId());
              $ucenik->setSkolaId($skola_id);
              $ucenik->setRazredId($razred_id);
              $ucenik->setRedBr($data[$nazivi['rbr_dnevnik']]);
              $ucenik->setMaticnaKn($data[$nazivi['sucenik']]);
              $ucenik->setDatumRod($dat_rod);
              $ucenik->setMestoRod($data[$nazivi['mesto_rod_naziv']]);
              $ucenik->setDrzavaRod($drzava);
              $ucenik->setJmbg($data[$nazivi['jmbg']]);
              $ucenik->setTip(UcenikPeer::$tip['redovan']);
              $ucenik->save();
            }


if($mode == 3)
{
   $duplicats = array_intersect($rod_ar, $uc_ar);

   var_dump($duplicats);
   die('kraj');
}

if($mode == 2)
{
   $users = dbFinder::from('Profil')->select('Username')->find();
   $duplicats = array_intersect($user_ar, $users);
   var_dump($duplicats); die('kraj');

}

if($mode == 4)
{
   var_dump($names); die('kraj');

}

          }

        }
        @unlink($uploads.$fileName);
      }
      if($mode == 1)
        $con->commit();
      }
        catch(Exception $e)
        {
            $con->rollBack();
            throw $e;
        }

      $this->skolas = DbFinder::from('Skola')->find();
      $this->tip = $tip;
  }

  public function executeIncrementRazred(sfWebRequest $request)
  {
     $skola_id = $request->getParameter('skola_id');
     $smer_dbs = DbFinder::from('Smer')->find();
     $smers = array();
     foreach($smer_dbs as $smer_db)
       $smers[$smer_db->getNaziv()] = $smer_db->getId();

     $razreds = DbFinder::from('Razred')->where('SkolaId', $skola_id)->find();
     foreach($razreds as $razred)
     {
        if($razred->getRazred() == 8)
          $razred->delete();
        else if($razred->getSmerId() == $smers['osn 1'])
          $razred->setSmerId($smers['osn 2']);
        else if($razred->getSmerId() == $smers['osn 2'])
          $razred->setSmerId($smers['osn 3']);
        else if($razred->getSmerId() == $smers['osn 3'])
          $razred->setSmerId($smers['osn 4']);
        else if($razred->getSmerId() == $smers['osn 4'])
          $razred->setSmerId($smers['osn 5']);
        else if($razred->getSmerId() == $smers['osn 5'])
          $razred->setSmerId($smers['osn 6']);
        else if($razred->getSmerId() == $smers['osn 6'])
          $razred->setSmerId($smers['osn 7']);
        else if($razred->getSmerId() == $smers['osn 7'])
          $razred->setSmerId($smers['osn 8']);

        if($razred->getRazred() != 8)
        {
           $razred->setRazred($razred->getRazred() + 1);

           $razred->save();
        }
     }

  }

  /*public function executeImportMob(sfWebRequest $request)
  {
     set_time_limit(3600);
     ini_set('memory_limit', '1000M');
     $handle = @fopen('C:\wamp\www\dnevnik\web\uploads\export_.csv', "r"); // Open file form read.
     $users = array();

     if ($handle)
     {
        while (!feof($handle)) // Loop til end of file.
        {
           $buffer = fgets($handle, 200); // Read a line.
           if(strlen($buffer) < 2)
             continue;
           $buf = explode(';', $buffer);
           //$users[trim($buf[0])] = trim($buf[1]);
           DbFinder::from('Profil')->where('Username', trim($buf[0]))->set(array('Mobilni' => trim($buf[1])));
        }
     }
     //var_dump($users);
     return $this->renderText('aa');
  }*/

  /*public function executeSetMail(sfWebRequest $request)
  {
     set_time_limit(3600);
     ini_set('memory_limit', '1000M');

     $users = DbFinder::from('Profil')->select(array('Id', 'Username'), sfModelFinder::SIMPLE)->where('EMail', 'like', '%@sms%')->find();
     foreach($users as $user_arr)
     {
       list($id, $username) = $user_arr;
       DbFinder::from('Profil')->where('Id', $id)->set(array('EMail' => $username.'@skolskidnevnik.rs'));
     }

     return $this->renderText('aa');
  }*/

  public function executeMaleKvacice(sfWebRequest $request)
  {
     $slova = array('Đ' => 'đ', 'Š' => 'š', 'Ć' => 'ć', 'Č' => 'č', 'Ž' => 'ž');

     $profils = DbFinder::from('Profil')->select(array('Id', 'Prezime', 'Ime'))->find();
     foreach($profils as $profil)
     {
        if(in_array(mb_substr($profil['Prezime'], 0, 1, 'UTF-8'), $slova))
        {
           $prezime = array_search(mb_substr($profil['Prezime'], 0, 1, 'UTF-8'), $slova).mb_substr($profil['Prezime'], 1, mb_strlen($profil['Prezime']), 'UTF-8');

           echo $profil['Prezime'].' '.$prezime.'<br />';
           DbFinder::from('Profil')->where('Id', $profil['Id'])->set(array('Prezime' => $prezime));
        }

        if(in_array(mb_substr($profil['Ime'], 0, 1, 'UTF-8'), $slova))
        {
           $ime = array_search(mb_substr($profil['Ime'], 0, 1, 'UTF-8'), $slova).mb_substr($profil['Ime'], 1, mb_strlen($profil['Ime']), 'UTF-8');

           echo $profil['Ime'].' '.$ime.'<br />';
           DbFinder::from('Profil')->where('Id', $profil['Id'])->set(array('Ime' => $ime));
        }
     }

     return $this->renderText('a');
  }

  /*public function executeImportPlanovi(sfWebRequest $request)
  {
      set_time_limit(3600);
      ini_set('memory_limit', '1000M');

      $predmets = array();
      $predmet_dbs = DbFinder::from('Predmet')->find();
      foreach($predmet_dbs as $predmet_db)
        $predmets[$predmet_db->getPredmet()] = $predmet_db->getId();

      $profesors = array();
      $profesor_dbs = DbFinder::from('Profesor')->join('Profil')->with('Profil')->where('SkolaId', 1)->find();
      foreach($profesor_dbs as $profesor_db)
        $profesors[$profesor_db->getUsername()] = $profesor_db->getId();

      $con = Propel::getConnection();
      try
      {
         $con->beginTransaction();
         if($request->isMethod('post'))
         {
           $uploads = sfConfig::get('sf_web_dir').'/uploads/';

           $uploadfile = $uploads.basename($_FILES['userfile']['name']);

           if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
           {
           }
           else die ('greska upl');

           $handle = @fopen($uploadfile, "r"); // Open file form read.

           if ($handle)
           {$i=0;//$predmet_ar = array();
               $nazivi = array('predmet' => 0, 'razred' => 1, 'rbr' => 2, 'opis' => 3, 'username' => 4);
               while (!feof($handle)) // Loop til end of file.
               {$i++;
                 $buffer = fgets($handle, 4096); // Read a line.
                 if(strlen($buffer) < 2)
                   continue;

                 $buffer = explode('*|*', trim($buffer));
 //if(!in_array($buffer[$nazivi['predmet']], $predmet_ar)) $predmet_ar[] = $buffer[$nazivi['predmet']];
                 $pr = new PlanRada();
                 $pr->setSkolaId(1);
                 if($predmets[$buffer[$nazivi['predmet']]] == '')
                   throw new Exception('aaa'.$i);
                 $pr->setPredmetId($predmets[$buffer[$nazivi['predmet']]]);
                 $pr->setRazred($buffer[$nazivi['razred']]);
                 $pr->setRedBr($buffer[$nazivi['rbr']]);
                 $pr->setOpis($buffer[$nazivi['opis']]);
                 if($buffer[$nazivi['username']] != '')
                   $pr->setProfesorId($profesors[$buffer[$nazivi['username']]]);

                 $pr->save();

                 //echo $buffer[$nazivi['predmet']].'--'.$predmets[$buffer[$nazivi['predmet']]].'--'.$buffer[$nazivi['username']].'--'.$profesors[$buffer[$nazivi['username']]].'--'.$buffer[$nazivi['razred']].'--'.$buffer[$nazivi['opis']].'--'.$buffer[$nazivi['rbr']].'<br />';
               }
           }
         }
         $con->commit();//var_dump(array_diff($predmet_ar, array_keys($predmets)));
      }
      catch(Exception $e)
      {
         $con->rollBack();
         throw $e;
      }
  }*/

  public function executeAzbRed(sfWebRequest $request)
  {
      set_time_limit(3600);
      ini_set('memory_limit', '1000M');

      $latin_0 = array("Lj", "Nj","Dž","lj","nj","dž");
      $cir_0 = array(".", "2",">",".", "2",">");
      $latin = array("A", "B", "V", "G", "D","Đ", "E", "Ž", "Z", "I", "J", "K", "L","M", "N", "O", "P", "R", "S","T", "Ć", "U", "F", "H", "C", "Č","Š", "a", "b", "v", "g", "d", "đ", "e", "ž", "z", "i", "j", "k", "l", "m", "n", "o", "p", "r", "s","t", "ć", "u", "f", "h", "c", "č", "š");
      $cir = array(" ","!","#","$","%", "&", "'", "(", ")", "*", "+", ",", "-", "0", "1","3","4", "5","6","7", "8", "9", ":",";", "<", "=", "?"," ","!","#","$","%", "&", "'", "(", ")", "*", "+", ",", "-", "0", "1","3","4", "5","6","7", "8", "9", ":",";", "<", "=", "?");

      if($request->getParameter('razred_id'))
      {
         $razreds = DbFinder::from('Razred')->where('Id', $request->getParameter('razred_id'))->find();
      }
      else if ($request->getParameter('skola_id'))
      {
         $razreds = DbFinder::from('Razred')->where('SkolaId', $request->getParameter('skola_id'))->find();
      }

      foreach($razreds as $razred)
      {
         $slovo = $razred->getSlovo();
         $razred_r = $razred->getRazred();
         if($slovo < 10)
           $slovo = '0'.$slovo;

         $uceniks = DbFinder::from('Ucenik')->where('RazredId', $razred->getId())->find();
         $ucenici_ar = array();
         foreach($uceniks as $ucenik)
         {
            $ucenici[0] = str_replace($latin_0, $cir_0, $ucenik->getPrezime());
            $ucenici[1] = str_replace($latin_0, $cir_0, $ucenik->getIme());

            $ucenici[0] = str_replace($latin, $cir, $ucenici[0]);
            $ucenici[1] = str_replace($latin, $cir, $ucenici[1]);

            $ucenici_ar[] = $ucenici[0].' '.$ucenici[1].'-*-'.$ucenik->getId();
         }

         sort($ucenici_ar, SORT_STRING);

         foreach($ucenici_ar as $key => $value)
         {
              $rbr = $key+1;
              $value_ar = explode('-*-',$value);

              if($razred_r == 5)
               $god = '09';
             else if($razred_r == 6)
               $god = '08';
             else if($razred_r == 7)
               $god = '07';
             else if($razred_r == 8)
               $god = '06';
             else if($razred_r == 1)
               $god = '09';
             else if($razred_r == 2)
               $god = '08';
             else if($razred_r == 3)
               $god = '07';
             else if($razred_r == 4)
               $god = '06';

             if($rbr < 10)
               $rbr = '0'.$rbr;

             if($razred_r > 4)
               $razred_br = '5';
             else $razred_br = '1';

              $mat_br = $rbr.$razred_br.$slovo.$god;
              //echo $mat_br.'<br>';

              DbFinder::from('Ucenik')->where('Id', $value_ar[1])->set(array('RedBr' => $rbr, 'MaticnaKn' => $mat_br));
         }
      }

      return $this->renderText('Kraj');
  }

  public function executeMatKnj(sfWebRequest $request)
  {
      set_time_limit(3600);
      ini_set('memory_limit', '1000M');

      if($request->getParameter('razred_id'))
      {
         $razreds = DbFinder::from('Razred')->where('Id', $request->getParameter('razred_id'))->find();
      }
      else if ($request->getParameter('skola_id'))
      {
         $razreds = DbFinder::from('Razred')->where('SkolaId', $request->getParameter('skola_id'))->find();
      }

      foreach($razreds as $razred)
      {
         $slovo = $razred->getSlovo();
         $razred_r = $razred->getRazred();

         if($slovo < 10)
           $slovo = '0'.$slovo;

         $uceniks = DbFinder::from('Ucenik')->where('RazredId', $razred->getId())->find();

         foreach($uceniks as $ucenik)
         {
              $rbr = $ucenik->getRedBr();

              if($razred_r == 5)
               $god = '09';
             else if($razred_r == 6)
               $god = '08';
             else if($razred_r == 7)
               $god = '07';
             else if($razred_r == 8)
               $god = '06';
             else if($razred_r == 1)
               $god = '09';
             else if($razred_r == 2)
               $god = '08';
             else if($razred_r == 3)
               $god = '07';
             else if($razred_r == 4)
               $god = '06';

             if($rbr < 10)
               $rbr = '0'.$rbr;

             if($razred_r > 4)
               $razred_br = '5';
             else $razred_br = '1';

              $mat_br = $rbr.$razred_br.$slovo.$god;
              //echo $mat_br.'<br>';

              DbFinder::from('Ucenik')->where('Id', $ucenik->getId())->set(array('MaticnaKn' => $mat_br));
         }
      }

      return $this->renderText('Kraj');
  }

  public function executeSendOldSms()
  {
     $olds = DbFinder::from('SmsSave')->find();
     foreach($olds as $old)
     {
        Functions::sendSms($old->getUcenikId(), $old->getText(), $old->getTip(), $old->getOpis(), $old->getPredmetId());
        $old->delete();
     }

     return $this->renderText('Poslato');
  }

}